package day02;

public class DataTypeDemo {
    public static void main(String[] args) {
        /*
        //1)int=整形，4个字节
        int a= 250;
        System.out.println(5/2);
        System.out.println(2/5);
         */

        /*
        //2)long:长整形，8个字节，-900万万亿多到900万万亿多
        long a = 25L;//25L为长整形直接量
        //long b = 10000000000;//编译错误，100亿默认为int类型，但超出int范围
        long c = 10000000000L;//100亿L为长整形直接量
        long d = 365L*24*60*60*10;//去年一年所经历的毫秒数
        System.out.println(d);//31536000000

        long e = 1000000000*2*10L;
        System.out.println(e);//200亿
        long f = 1000000000*3*10L;
        System.out.println(f);//不是300亿
        long g = 1000000000L*3*10;
        System.out.println(g);//300亿
         */

        /*
        //3）double 浮点型，8个字节，很大很大很大
        double a = 25.678;//25.678为小数直接量，默认为double类型
        float b = 25.678F;//25.678Ffloat型直接量
        double c=3.0,d=2.9;
        System.out.println(c-d);//0.10000000000009，发生舍入误差了
         */

        /*
        //4）boolean 布尔型，1个字节
        //只能存储true或false
        boolean a = true; //true为布尔型直接量
        boolean b = false;//false为布尔型直接量
        //boolean c = 25.6//编译错误，布尔型只能存储true或false
         */

        /*
        //5）char 字符型，2个字节
        //采用的是Unicode万国码/统一码/通用码，，是世界级通用的定长字符集
        char c1 = '女';//字符女
        char c2 = 'f';//字符f
        char c3 = '6';//字符6
        char c4 = ' ';//空格符
        //char c5 = 女；//编译错误，字符直接量必须放在单引号中
        //char c6 = ''；//编译错误，必须有字符
        //char c7 = '10';//编译错误，只能装一个字符

        char c8 = 56;//0到65535之间
        System.out.println(c8);//'A'，println（）时会依据c8的类型来做输出
                               //若c8为char类型，则以字符形式展示
                               //若c8为int类型，则以数字形式展示
        char c9 = '\\';
        System.out.println(c9);//\
         */

        /*
        //6）类型间的转换
          //①自动类型的转换：小类型到大类型
          //②强制类型转换：大类型到小类型
          int a = 5;//
          long b = a;//自动类型转换
          int c = (int)b;//强制类型转换

          long d = 5;//自动类型转换
          double e= 5;//自动类型转换
          System.out.println(e);//5.0

          long f = 10000000000L;
          int g = (int)f;
          System.out.println(g);//1410065408,强转有可能发生溢出

          double h = 25.978;
          int i = (int)h;
          System.out.println(i);//25,强制有可能丢失精度
          */


        /*System.out.println(2+2);
        System.out.println('2'+'2');
        System.out.println(2+'2');
        System.out.println('2');//输出2，因为没有参与运算

        int a = '我';//25105 看字符对应的码
        System.out.println(a);
        char b = 65;//看码对应的字符
        System.out.println(b);//A

         */

        long a = 2l;
        }
}